/*****************************************************************************

FileName: <codec.h>

Description:
Codec API related structures

*****************************************************************************/

#ifndef _CODEC_H
#define _CODEC_H


#include <stdio.h>
#include <error.h>
#include <types.h>
#include <vidout.h>


/*******************************************

This Union is used for Version Info

******************************************/
typedef union Version
{  
	struct  
	{ 
		unsigned char nVersionMajor;   	/* Major version accessor element */ 
		unsigned char nVersionMinor;   	/* Minor version accessor element */ 
		unsigned char nRevision;       	/* Revision version accessor element */ 
		unsigned char nStep;           	/* Step version accessor element */ 
	} s;  
	unsigned int nVersion;         		/* 32 bit value to make accessing the
										version easily done in a single word
										size copy/compare operation */
} Version;



/* Instance Handle for the codec */
typedef struct CodecInstance *CodecHandle; 


/*******************************************

This structure used for CodecInstance 

******************************************/
/* Codec Instance "Object" */
typedef struct CodecInstance
{
	unsigned int nSize;
	Version nVersion;
	void *pPrivateData;

	ErrorType (*pInitCodec)(CodecHandle, void *, void *);	/* Init Codec Resources Function */
	ErrorType (*pProcess)(CodecHandle, void *, void *);	/* main processing function */ 
} CodecInstance;


#endif

